dofile "lib/radical.lua"

function ct_tile(s) 
  return const.path.gfx.."game/city/"..s..".jpg"; 
end

function cm_tile(s) 
  return const.path.gfx.."game/common/"..s..".jpg"; 
end

function dxml(s)
  return const.path.dlg.."4-mad/funeral/"..s..".xml";
end

funeral = engine.state {
   _nick        = false --Nick came to Kate
}

funeral_player = musplayer.player {
   mus("rain"):inside("start"):loop()
  ,mus("threshold"):inside("walk2"):loop()
  ,mute():inside("cloud_slide1"):fade(3000,3000)
  ,mus("rain"):inside("cloud_slide2"):fade(2000,2000):loop()
  ,mute():inside("walk7"):fade(3000,3000)
  ,mus("threshold2"):inside("walk8")
}

main = engine.main {
   start        = chain_ {
                     episode_("4-funeral")
                    ,musplayer_("funeral_player")
                    ,walk_("start")
                  }
  ,finish       = gamefile_("4-mad/face.lua")
}

start = pause {
   tile         = { cm_tile "clouds4", 0, 20 }
  ,bounds       = { 176, 333, 700 }
  ,time         = 2000
  ,next         = "grave1"
}

grave1 = scene {
   tile         = { cm_tile "clouds4", 0, 20 }
  ,bounds       = { 176, 333, 700 }
  ,obj          = { "grave1_rain", "grave1_umbrella", "nick1", "nick2" }
}

grave1_rain = staticitem {
   dsc          = [[И снова {дождь}.]]
  ,act          = [[В утренних новостях говорили, что это самое пасмурное лето за последние сто лет -- средний уровень осадков, непредсказуемые скачки 
                    температуры, просмотренный синоптиками циклон. Катя включила телевизор, когда собиралась, чтобы хоть как-то заглушить чувство пустоты 
                    внутри себя, однако из получасовой речи диктора запомнила только это. Самое пасмурное лето. Снова идет дождь.]]
  ,showonce     = true
  ,cnd          = not_("funeral._nick")
}

grave1_umbrella = staticitem {
   dsc          = "Потрепанный {зонт} дрожит у Кати в руке -- и вовсе не потому, что его пытается вырвать ветер."
  ,act          = "Две болезненно загнутые спицы торчат из-под оборвавшейся брезентовой ткани. Толку от этого зонта немного, но это зонт ее отца."
  ,showonce     = true
  ,cnd          = not_("funeral._nick")
}

nick1 = staticitem {
   dsc          = "^{Коля} что-то объясняет рабочему в заляпанной глиной куртке, но тот в ответ лишь нетерпеливо размахивает рукой."
  ,act          = chain_ { set_("funeral._nick"), clstmp, refresh }
  ,cnd          = not_("funeral._nick")
}

nick2 = staticitem {
   dsc          = [[Коля явно устал спорить с рабочими и, покачав головой, {направился к Кате}. Он чуть не поскользнулся, пытаясь 
                    протиснуться между двумя низкими цоколями -- вся земля под ногами превратилась в грязь и расползалась от каждого шага.]]
  ,act          = walk_("nick_dlg1")
  ,cnd          = if_("funeral._nick")
}

nick_dlg1 = dialog {
   tile         = { cm_tile "clouds4", 0, 20 }
  ,bounds       = { 176, 333, 700 }
  ,dlg          = dxml "nick1"
}

grave2 = scene {
   tile         = { cm_tile "clouds4", 0, 20 }
  ,bounds       = { 176, 333, 700 }
  ,obj          = { "grave2_workers", "grave2_coffin" }
}

grave2_workers = staticitem {
   dsc          = [[{Рабочие}, раздраженно перекрикиваясь, пытаются пронести]]
  ,act          = walk_("grave3")
}

grave2_coffin = staticitem {
   dsc          = [[{гроб} по узкой размытой в грязь дорожке между могилами. Один из них чуть не поскользнулся и ухватился рукой 
                    за перекосившийся могильный камень, который задрожал так, словно едва держался в земле.]]
  ,act          = "Тканевая обивка вся промолка, а неказистая оборка у крышки гроба свисает как лохмотья."
  ,showonce     = true
}

grave3 = cutscene {
   bounds       = { 260, 200, 480 }
  ,dsc          = [[Некоторые из них нацепили на голову целлофановые пакеты, хотя это несильно помогает от дождя. Катя чувствует, что 
                    у нее самой насквозь промокли ноги; ей кажется, что глинистая земля расходится под ней, что все кладбище превращается
                    в огромное мертвенное болото.^
                    -- Правее! Нет!.. Да не так... Вот ты ж твою...^
                    Рабочие остановились, поставив гроб на чей-то цоколь, соображая, как им перенести гроб через огромную рытвину между могилами, 
                    до кроев заполненную мылкой дождевой водой. Николай покачал головой и направился к рабочим -- перешагивая через лужи, 
                    опираясь руками на могильные плиты, чтобы упасть. Катя снова осталась одна.^
                    Дойдя до соседней могилы, Коля остановился, повернулся к Кате, точно собирался что-то сказать, но тут рабочие вновь
                    стали громко переругиваться, и Коля заспешил к ним, торопливо перепрыгивая через рытвины с водой.]]
  ,next         = "grave4"
}

grave4 = scene {
   tile         = cm_tile "grave"
  ,obj          = { "grave4_workers", "grave4_nickstand", "grave4_kate" }
}

grave4_workers = staticitem {
   dsc          = [[Рабочие встали вокруг разрытой ямы и медленно {опускают} гроб вниз с помощью длинных ремней.]]
  ,act          = [[Гроб чуть не соскальзывает с ремней, рабочие кричат, но один из них вовремя перехватывает гроб.]]
  ,showonce     = true
}

grave4_nickstand = staticitem {
   dsc          = [[{Коля} стоит вместе с ними, как будто хочет помочь -- однако он только мешает. Шесть человек держат
                    гроб на черных от грязи ремнях, однако, кажется, они с трудом удерживают его, точно гроб невыносимо
                    потяжелел от проливного дождя.]]
  ,act          = "Он весь промок, но это его не беспокоит."
  ,showonce     = true
}

grave4_kate = staticitem {
   dsc          = [[Катя замерла и почему-то не может даже пошевелиться. Капли воды стекают по ее лицу. Вдруг что-то с 
                    тихим всплеском {падает} ей под ноги, в грязь.]]
  ,act          = [[Это зонт. Катя даже не заметила, как он выскользнул у нее из руки.^
                    Она нагибается, чтобы поднять его и... вдруг {walk(walk1)|слышит} глухой стук удара чего-то тяжелого о землю.]]
}

walk1 = pause {
   time         = 1000
  ,next         = "walk2"
}

walk2 = pause {
   time         = 2000
  ,next         = "walk3"
}

walk3 = pause {
   time         = 500
  ,tile         = { ct_tile "lantern1", 400, 20 }
  ,fading       = 60
  ,next         = "walk4"
}

walk4 = dialog {
   tile         = { ct_tile "lantern1", 400, 20 }
  ,bounds       = { nil, 260, 560 }
  ,dlg          = dxml "nick2"
}

cloud_slide1 = pause {
   time         = 3000
  ,next         = "cloud_slide2"
}

cloud_slide2 = slidedown {
   tile         = cm_tile "clouds3"
  ,starty       = -150
  ,y            = 0
  ,x            = 0
  ,step         = 1
  ,fps          = 15
  ,next         = "walk5"
}

walk5 = scene {
   tile         = { cm_tile "clouds3", 0, 20 }
  ,bounds       = { nil, 360, 900 }
  ,dsc          = "Катя и {walk(walk6)|Николай}"
  ,alwaysdsc    = true
  ,obj          = { "walk5_suburbs", "walk5_rain", "walk5_empty" }
}

walk5_suburbs = staticitem {
   dsc          = [[стоят под навесом автобусной остановки -- они {далеко на окраине}, где маршрутный транспорт ходит раз
                    в час, а разбитую однополосную дорогу обступает лес.]]
  ,act          = [[Кате хочется просто свалиться в постель и уснуть, но она будет добираться до дома не меньше часа.]]
  ,showonce     = true
}

walk5_rain = staticitem {
   dsc          = "{Дождь} продолжает лить."
  ,act          = "Как будто дождь никогда и не завершался, как будто он идет с того самого дня, когда начались приступы у отца."
  ,showonce     = true
}

walk5_empty = staticitem {
   dsc          = [[Улица {пуста}, и свет фонарей, горящих среди дня, кажется каким-то обреченным и бесмысленным.]]
  ,act          = [[Катя давно уже давно не навещала могилу бабушки, но она не помнила, чтобы здесь было настолько пустынно. 
                    Как будто она прошла через черту. Как будто похоронила отца в мертвом городе.]]
  ,showonce     = true
}

walk6 = dialog {
   tile         = { cm_tile "clouds3", 0, 20 }
  ,bounds       = { nil, 360, 900 }
  ,dsc          = "-- Да... Тут и не поймешь, когда был последний автобус. Сколько еще ждать?"
  ,dlg          = dxml "nick3"
}

walk7 = pause {
   time         = 3000
  ,bounds       = { 370, 280, 480 }
  ,dsc          = "-- Что ты могла забыть?"
  ,next         = "walk8"
}

walk8 = scene {
   tile         = { cm_tile "clouds3", 0, 20 }
  ,bounds       = { nil, 360, 900 }
  ,fading       = 40
  ,dsc          = [[Вода в лужах вокруг остановки пенится и пузыриться. Плохая примета, как говорил Кате отец. Дождь будет идти
                    долго. Катя вздыхает. Она по-прежнему держит в руке раскрытый зонт, хотя они стоят под навесом станции. Коля
                    поворачивается к ней, как будто хочет что-то сказать, но потом опускает голову и начинает как-то отрешенно
                    смотреть себе под ноги. Свет фонарей растворяется в потоках воды на асфальте.^^]]
  ,alwaysdsc    = true
  ,obj          = { "walk8_lights" }
}

walk8_lights = staticitem {
   dsc          = [[Катя оглядывается. Вокруг по-прежнему никого нет, ни машин, ни пешеходов -- лишь пасмурная темнота и бесконечный
                    дождь. Вдруг ей кажется, что она замечает вдалеке, на дороге, какие-то {огни}.]]
  ,act          = walk_("walk9")
}

walk9 = pause {
   time         = 2000
  ,fading       = 60
  ,next         = "main"
}